<?php

/*
 * archivo para ser ejecutado por un cron todos los dias y generar un archivo de consulta despues
 */

set_time_limit(0);

function conexion(){
        if (!($link=mysql_connect("localhost","caweb","caweb")))
        {
                echo "Error conectando al sistema de bases de datos Mantis";
                exit();
        }
        return $link;
}

function concatenar($var, $valor) {
    if ($var == "")
        $var = $valor;
    else
        $var = $var . ",$valor";
    return $var;
}

$con = conexion(); //conexion al servidor

$sql = "SELECT distinct(usr.entrada) as empresa, emp.base,emp.soporte FROM intranetpccom.usuarios usr ";
$sql .= "inner join intranetpccom.empresas emp on emp.empresa = usr.entrada";
$resultempresas = mysql_query($sql);

while ($empresa = mysql_fetch_array($resultempresas)) {
    //conexion($empresa['base']);
    $baseDatos = $empresa['base'];
    //elimina toda la informacion de internos inconcistentes para ese nit en la tabla
    $sql = "TRUNCATE TABLE $baseDatos.equiposinconsistentes ";
    $equCliente = mysql_query($sql);

    //Realiza la consulta maestra
    $sql = "select det.transaccion,det.interno,det.item,cab.terceroref, date_format(det.fechacreo,'%Y-%m-%d') as fechacreo, det.ubicaciondestino from $baseDatos.cabeceras cab ";
    $sql .= "inner join $baseDatos.detalles det on det.transaccion = cab.transaccion ";
    $sql .= " inner join $baseDatos.seriales ser on ser.interno = det.interno ";
    $sql .= "where cab.documento in ('SCA','SOI','SRC') ";
    //$sql .= "and terceroref = '800177797' ";
    $sql .= "and (left(det.item,1) = 'C' or left(det.item,1) = 'I' or left(det.item,1) = 'M' or left(det.item,1) = 'O') ";
    $sql .= "and not exists( ";
    $sql .= "select detAux.interno from $baseDatos.cabeceras cabAux ";
    $sql .= "inner join $baseDatos.detalles detAux on detAux.transaccion = cabAux.transaccion ";
    $sql .= "where cabAux.documento in ('ECA','ECL','RUB','LEP','ERC') ";
    $sql .= "and detAux.bodegaorigen = 'CLI' ";
    $sql .= "and detAux.ubicacionorigen = cab.terceroref ";
    $sql .= "and det.interno = detAux.interno) ";
    $sql .= "and ser.bodega <> 'BAJ' ";
    $sql .= "and (ser.backup <> 'Si' or ser.backup is null) ";
    $sql .= "and not exists( ";
    $sql .= "select presunto from $baseDatos.contrapartes con where con.cliente = cab.terceroref ";
    $sql .= "and con.estado <> 'Ok' and con.presunto = det.interno) order by cab.terceroref";
    $equCliente = mysql_query($sql);
    while ($equipo = mysql_fetch_array($equCliente)) {        
        $descripcion = "";
        unset($monitor);
        if ($equipo['terceroref'] == "")
            $equipo['terceroref'] = $equipo['ubicaciondestino'];
        //se hace esta validacion para no tomar en cuenta los registros que no tienen cliente definido
        if ($equipo['terceroref'] == "")
            continue;
        $sql = "select estado,valoralquiler,facturable,item,id,sucursalfactura from $baseDatos.basefacturacion ";
        $sql .= "where interno = '{$equipo['interno']}' ";
        $sql .= "and cliente = '{$equipo['terceroref']}' ";
        $sql .= "and fechacreo >=  '{$equipo['fechacreo']}' ";
        $basetmp = mysql_query($sql);
        
        $base = mysql_fetch_array($basetmp);
        if (is_array($base)) {
            //Valida los equipos vigentes
            if ($base['estado'] != 'V')
                $descripcion = concatenar($descripcion, "Interno no esta vigente");

            //Valida el estado facturable
            if (substr($base['item'], 0, 1) != 'M' || $base['valoralquiler'] > 0) {
                if ($base['facturable'] == 'No')
                    $descripcion = concatenar($descripcion, "No tiene estado Facturable(Si)");
                if (substr($base['item'], 0, 1) == 'M')
                    $monitor = $equipo['interno'];
            }
            //Valida que tenga valor alquiler
            if (substr($base['item'], 0, 1) != 'M' && $base['valoralquiler'] == 0)
                $descripcion = concatenar($descripcion, "No tiene valor alquiler");
            //Valida que tenga sucursal factura
            if ($base['sucursalfactura'] == "")
                $descripcion = concatenar($descripcion, "No tiene sucursal factura");
        }else{
            $descripcion = concatenar($descripcion, "No existe en base de facturacion");
            $base['valoralquiler'] = 0;
            $base['id'] = 0;
        }

        //Verifica el valor
        $sql = "select interno,item,tarifa from $baseDatos.seriales where interno = '{$equipo['interno']}'";
        $ser = mysql_query($sql);
        $ser = mysql_fetch_array($ser);
        if (!is_array($ser)) {
            $descripcion = concatenar($descripcion, "Interno no existe en serial");
        } else {
            //Valida que tenga valor alquiler solo cuando no es un Monitor, o cuando en base factururacion tiene valor de alquiler
            if (isset($monitor) && substr($ser['item'], 0, 1) == 'M')
                if ($ser['tarifa'] != $base['valoralquiler'])
                    $descripcion = concatenar($descripcion, "valor alquiler diferentes");
            if (substr($ser['item'], 0, 1) != 'M')
                if ($ser['tarifa'] != $base['valoralquiler'])
                    $descripcion = concatenar($descripcion, "valor alquiler diferentes");
        }
        //echo $descripcion."<br />";
        if ($descripcion != "") {
            $sql = "insert into $baseDatos.equiposinconsistentes(item,interno,descripcion,nit,tarifaFac,tarifaSer,idfacturacion,transaccion)
                    values('{$equipo['item']}','{$equipo['interno']}','$descripcion','{$equipo['terceroref']}',{$base['valoralquiler']},{$ser['tarifa']},{$base['id']},{$equipo['transaccion']})";
            $result = mysql_query($sql);
        }
    } //fin while($equipo = mysql_fetch_array($equCliente)){ */
} //fin while ($empresa = mysql_fetch_array($result)) {

?>